package com.bbzn.device.client.vo.req;

import lombok.Data;

import javax.validation.constraints.NotNull;

/**
 * @Author wulongbo
 * @Date 2020/7/6 16:28
 * @Version 1.0
 */

@Data
public class ProductCtVo extends ProductVO {

    /**
     * 接入类型（必填）: 1.设备直连，2.网关接入，3.南向云接入（只支持1）
     * 默认 1
     */
    @NotNull(message = "接入类型不能为空!（必填）: 1.设备直连，2.网关接入，3.南向云接入（只支持1）")
    private  Integer accessType;


    /**
     * 认证方式 1:特征串认证,2:SM9认证,3:证书认证,4:IMEI认证，5:SIMID认证，6:SM2认证，7:IPV6标识认证
     * 注：SM9认证、SIMID认证需要订购
     *     T-LINK协议支持：1:特征串认证,2:SM9认证,3:证书认证,5:SIMID认证
     *     MQTT协议支持：1:特征串认证,2:SM9认证,5:SIMID认证,6:SM2认证
     *     LWM2M协议支持：2:SM9认证,4:IMEI认证，5:SIMID认证，6:SM2认证，7:IPV6标识认证
     *     HTTP协议、TCP协议支持：1:特征串认证
     *     JT/T808支持：无
     *     网关MQTT协议支持：1:特征串认证
     * 默认填写 4
     */
    private  Integer authType;


    /**
     * 数据加密方式 1:sm1,2:sm2,3:sm4,4:dtls,5:明文（只支持MQTT/LWM2M/TCP）
     * 默认 5
     */
    private  Integer dataEncryption;

    /**
     * JT/T808协议 设备型号
     * 默认 null
     */
    private String deviceModel;

    /**
     * 安全类型(只支持MQTT,TCP协议,HTTP协议) 0:一机一密，1:一型一密
     * 默认 0
     */
    private  Integer encryptionType;

    /**
     * :Endpoint格式（LWM2M协议必填）:1.IMEI 2.URN:IMEI:###############   3.URN:IMEI-IMSI: ###############-############### 4.URN:IMEI+SM9
     * 默认 1
     *
     * 注：认证方式为SM9认证时，Endpoint格式只能为4
     *     认证方式为IMEI认证，SIMID认证，SM2认证时，Endpoint格式为1/2/3
     *     认证方式为IPV6标识认证时，Endpoint格式为3
     */
    private  Integer endpointFormat;

    /**
     * eDRX模式时间窗(LWM2M协议,当省电模式为3时,必填):20 ～ 10485.76 间的值
     * 默认 不填
     */
    private  Float lwm2mEdrxTime;

    /**
     * JT/T808协议 制造商ID
     * 默认不填
     */
    private String manufacturerId;

    /**
     * 网络类型（必填）:1.WIFI,2.移动蜂窝数据3.NB-IoT,4.以太网,5.蓝牙,6.ZigBee （只支持3）
     * 默认 3
     */
    private Integer networkType;

    /**
     * 节点类型（必填）：1.设备 ，2.网关（只支持1）
     * 默认 1
     */
    private Integer nodeType;

    /**
     * 消息格式 1:json，2:紧凑二进制
     * 默认 1
     */
    private Integer payloadFormat;

    /**
     * 省电模式（LWM2M协议必填）：1.PSM 2.DRX 3.eDRX
     * 默认 1
     */
    private Integer powerModel;

    /**
     * 产品描述（选填）：产品描述最多100个字符
     */
    private String productDesc;

    /**
     * 产品名称（必填）：产品名称最多 64 个字符，产品名称必须包含数字或字母或汉字
     */
    @NotNull(message = "产品名称不能为空")
    private String productName;

    /**
     * 产品协议（必填）：只支持 1.T-LINK协议 2.MQTT协议 3.LWM2M协议 5.HTTP协议 6.JT/T808 7.TCP协议 10.网关MQTT协议 (只填3)
     * 默认 3
     */
    private Integer productProtocol;

    /**
     * 产品分类（必填）
     */
    private String productType;

    /**
     * 二级分类（必填）
     */
    private String secondaryType;

    /**
     * 三级分类（必填）
     */
    private String thirdType;

    /**
     * 是否透传：0.透传，1不透传（JT/T808，只有透传，消息格式必须只能传null）
     * 默认 0
     */
    private Integer tupIsThrough;

    /**
     * 设备型号，选填，设备直连并且非JT/T808协议产品必填
     */
    private String tupDeviceModel;


    /**
     * 是否已有电信官方认证通过的profile
     * 0：没有
     * 1：有
     */
    private int profile;
}
